#include <iostream>
using namespace std;

/*
    定义使用命名空间
    namespace 命名空间的名字
    {
        你需要包含的各种变量，函数，类的定义.....
    }

    使用命名空间
    命名空间::成员
    比如：A::n

    启发
        命名空间里面的变量和普通的全局变量作用域相同，但是不会产生变量冲突
*/

int n = 789;

namespace A
{
    int n = 123;
    void func()
    {
        cout << "A::func()" << endl;
    }
}

namespace B
{
    int n = 456;
    void func()
    {
        cout << "B::func()" << endl;
    }
}

void func()
{
    cout << "func()" << endl;
}

int main()
{
    cout << n << &n << endl;
    cout << A::n << &(A::n) << endl;
    cout << B::n << &(B::n) << endl;

    func();
    A::func();
    B::func();

    return 0;
}